package model;

import java.text.SimpleDateFormat;
import java.util.Date;
import android.annotation.SuppressLint;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable(tableName = "consumos")
public class Consumo {
	public static final String ID_FIELD_NAME = "id"; 
	public static final String FECHA_CONSUMO_FIELD_NAME = "fecha_consumo"; 
	public static final String CONSUMO_DIARIO_FIELD_NAME = "consumo_diario_id"; 
	public static final String CANTIDAD_FIELD_NAME = "cantidad"; 
	public static final String ALIMENTO_FIELD_NAME = "alimento_id"; 
	
	@DatabaseField(generatedId=true, columnName=ID_FIELD_NAME)
	private int id;
	
	@DatabaseField(columnName= CANTIDAD_FIELD_NAME)
	private Float cantidad;
	
	@DatabaseField(dataType = DataType.DATE_LONG, columnName=FECHA_CONSUMO_FIELD_NAME) //En la base se va a guardar un Long, mas facil de comparar
	private Date horarioConsumo;
	
	@DatabaseField(foreign=true, columnName=ALIMENTO_FIELD_NAME)
	private Alimento alimento;
	
	@DatabaseField(foreign=true, columnName=CONSUMO_DIARIO_FIELD_NAME) /*Necesario para las ForeignCollections de ORMLite*/
	private ConsumoDiario consumoDiario;
	
	public Consumo() {
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Float getCantidad() {
		return cantidad;
	}

	public void setCantidad(Float cantidad) {
		this.cantidad = cantidad;
	}

	public Date getHorarioConsumo() {
		return horarioConsumo;
	}

	public void setHorarioConsumo(Date horarioConsumo) {
		this.horarioConsumo = horarioConsumo;
	}

	public Alimento getAlimento() {
		return alimento;
	}

	public void setAlimento(Alimento alimento) {
		this.alimento = alimento;
	}

	public ConsumoDiario getConsumoDiario() {
		return consumoDiario;
	}

	public void setConsumoDiario(ConsumoDiario consumoDiario) {
		this.consumoDiario = consumoDiario;
	}
	@SuppressLint("SimpleDateFormat")
	public String toString(){
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
		String hora =sdf.format(getHorarioConsumo()).toString();
		if(getAlimento().getNombre().equals("Liquido")){
			return " Alimento: "+getAlimento().getNombre()
					+"\r\n Cantidad: "+getCantidad()+" ML \r\n Horario: "+hora+" hs";
		}
		else{
			return " Alimento: "+getAlimento().getNombre()
					+"\r\n Cantidad: "+getCantidad()+" u \r\n Horario: "+hora+" hs";
		}
	}	
}
